package cn.centec.bid.entity;

import cn.centec.core.entity.StandardReceiveParam;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 标准 - 创建/修改报价参数
 *
 * 调用：采购中心 > 采购系统
 *
 * @author 延晓磊
 * @since 2022年11月04日
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class StandardSupplyCreateParam extends StandardReceiveParam {

    // 采购编号（StandardPurchaseStartParam.id）
    private String pid;
    // 采购企业ID
    private Long orgId;
    // 供应商ID
    private Long supplierId;
    // 供应商名称
    private String supplierName;
    // 报价总额
    private BigDecimal amount;
    // 报价说明【NULL】
    private String remarks;
    // 报价附件【NULL】
    private String fileUrl;
    // 报价时间
    private LocalDateTime updateTime;

    // 偏离信息【NULL】
    private List<Deviate> deviateList;
    // 物资项
    private List<Material> materialList;

    /**
     * 偏离信息
     *
     * @author 延晓磊
     * @since 2022年11月03日
     */
    @Data
    public static class Deviate {

        // 源ID（采购偏离项 StandardPurchaseStartParam.Deviate.id）
        private String dataId;
        // 响应说明
        private String reply;
        // 响应附件【NULL】
        private String replyFileUrl;
    }

    /**
     * 物资项
     *
     * @author 延晓磊
     * @since 2022年11月03日
     */
    @Data
    public static class Material {

        // 源ID（采购物资项 StandardPurchaseStartParam.Material.id）
        private String dataId;
        // 数量
        private BigDecimal num;
        // 单价
        private BigDecimal price;
        // 小计
        private BigDecimal amount;
    }
}
